package com.dollar.ruyuan_jvm.jstat;

/**
 * jstat 窥探系统的内存使用压力、GC压力、内存分配是否合理
 * jstat -gc {pid}
 * jstat -gc {pid} 1000 10 一秒更新一次统计信息，搞10次
 * <p>
 * 要重视的信息：
 * 新生代对象增长的速率，YGC触发频率，YGC耗时，每次YGC后有多少对象存活、有多少对象进入老年代
 * 老年代对象增长的速率，FullGC触发频率，FullGC耗时
 * <p>
 * * jvm （1.8）参数配置
 * -XX:NewSize=104857600 -XX:MaxNewSize=104857600 -XX:InitialHeapSize=209715200 -XX:MaxHeapSize=209715200
 * -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15 -XX:PretenureSizeThreshold=3145728 -XX:+UseParNewGC
 * -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log
 * jstat -gc {pid} 1000 10
 */
public class JstatDemo {
    public static void main(String[] args) throws InterruptedException {
        Thread.sleep(30 * 1000);
        while (true) {
            //模拟每秒 50个请求
            loadData();
        }
    }

    private static void loadData() throws InterruptedException {
        byte[] data = null;
        for (int i = 0; i < 50; i++) {
            data = new byte[100 * 1024];
        }
        data = null;
        Thread.sleep(1000);
    }
}
